package com.ship.dispatch.service;

import com.github.pagehelper.PageInfo;
import com.ship.common.business.service.BaseService;
import com.ship.common.core.base.Page;
import com.ship.dispatch.bean.SpBoatsActualCompatible;
import com.ship.dispatch.bean.boats.QueryBoatsActualRq;
import com.ship.dispatch.bean.boats.info.QueryBoatsActualCompatibleInfo;
import com.ship.dispatch.bo.SpBoatsActualCompatibleBo;
import com.ship.dispatch.model.Vo.SpBoatsActualCompatibleSaveVo;
import com.ship.dispatch.model.dto.BoatsActualCompatibilitySaveDto;
import com.ship.dispatch.model.dto.BoatsActualCompatibilityUpdateDto;
import com.ship.dispatch.model.dto.SpBoastPortMessageDto;
import com.ship.dispatch.vo.SpBoastPortMessageVo;

import java.util.List;

public interface SpBoatsActualCompatibleService extends BaseService<SpBoatsActualCompatible> {

    /**
     * 船运执行同步船岸兼容
     * @param boatsActualCompatibleBo
     * @return
     */
    Boolean synchronShipShoreCompatibility(SpBoatsActualCompatibleBo boatsActualCompatibleBo);

    /**
     * 港口挂靠船舶列表
     *
     * @param boastPortMessageDto
     * @return
     */
    PageInfo<SpBoastPortMessageVo> getBoastPortMessages(SpBoastPortMessageDto boastPortMessageDto);

    PageInfo<QueryBoatsActualCompatibleInfo> queryBoatsActualList(QueryBoatsActualRq rq);

    /**
     * 新增实际船岸兼容
     * @param boatsActualCompatibilitySaveDto
     */
    SpBoatsActualCompatible saveBoatsActualCompatibility(BoatsActualCompatibilitySaveDto boatsActualCompatibilitySaveDto);
    /**
     * 实际船岸兼容详情
     * @param id
     * @return
     */
    SpBoatsActualCompatibleSaveVo getBoatsActualCompatibility(Long id);

    /**
     * 编辑实际船岸兼容
     * @param boatsActualCompatibilityUpdateDto
     * @return
     */
    SpBoatsActualCompatibleSaveVo updateBoatsActualCompatibility(BoatsActualCompatibilityUpdateDto boatsActualCompatibilityUpdateDto);

    List<QueryBoatsActualCompatibleInfo> exportBoatsActualCompatible(SpBoatsActualCompatible boatsActualCompatible);

    boolean deleteBoatsActualCompatibilityById(Long id);
}
